package kevin.bigdata.spark.rdd.builder

import org.apache.spark.{SparkConf, SparkContext}

/**
 * @author: kevin  
 * @date: 11:37 2021/4/30
 */
object RDD_File_Par {
  def main(args: Array[String]): Unit = {
    //TODO 准备环境
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("RDD").set("spark.testing.memory","2147480000")
    val sc = new SparkContext(sparkConf)

    //TODO 创建RDD
    //minPartitions: 最小分区数量
    //math.min(defaultParallelism, 2)
    //val rdd = sc.textFile("data/1.txt")
    //spark读取文件，底层其实使用的就是Hadoop的读取方式
    //分区数量的计算方式：
    //  totalSize = 7
    // goalSize = 7 / 2 = 3 (byte)
    // 7 / 3 = 2...1 (1.1) + 1 = 3（分区）
    val rdd = sc.textFile("data/1.txt",3)
    rdd.saveAsTextFile("output")

    //TODO 关闭环境
    sc.stop()
  }
}
